package cn.snmp.mutual.uk.stack;

import cn.snmp.mutual.uk.pdu.DiscoveryPdu;

import java.io.*;
import java.util.*;

public interface SnmpContextv3Face extends SnmpContextBasisFace {
    public static final String version_id = "@(#)$Id: SnmpContextv3Face.java,v 3.20 2009/03/05 12:56:17 birgita Exp $ Copyright Westhawk Ltd";
    public static final int SNMPv1_Security_Model = 1;
    public static final int SNMPv2c_Security_Model = 2;
    public static final int USM_Security_Model = 3;
    public static final int MD5_PROTOCOL = 0;
    public static final int SHA1_PROTOCOL = 1;
    public static final int DES_ENCRYPT = 2;
    public static final int AES_ENCRYPT = 3;
    public static final String Default_UserName = "initial";
    public static final String Default_ContextName = "";
    public static final String[] ProtocolNames = {"MD5", "SHA1", "DES", "AES"};

    String getUserName();

    void setUserName(final String p0);

    boolean isUseAuthentication();

    void setUseAuthentication(final boolean p0);

    String getUserAuthenticationPassword();

    void setUserAuthenticationPassword(final String p0) throws IllegalArgumentException;

    void setAuthenticationProtocol(final int p0) throws IllegalArgumentException;

    int getAuthenticationProtocol();

    void setPrivacyProtocol(final int p0) throws IllegalArgumentException;

    int getPrivacyProtocol();

    boolean isUsePrivacy();

    void setUsePrivacy(final boolean p0);

    String getUserPrivacyPassword();

    void setUserPrivacyPassword(final String p0) throws IllegalArgumentException;

    void setContextEngineId(final byte[] p0) throws IllegalArgumentException;

    byte[] getContextEngineId();

    void setContextName(final String p0);

    String getContextName();

    boolean addDiscoveryPdu(final DiscoveryPdu p0) throws IOException, PduException;

    byte[] encodeDiscoveryPacket(final byte p0, final int p1, final int p2, final int p3, final Enumeration p4, final Object p5) throws IOException, EncodingException;

    void setUsmAgent(final UsmAgent p0);

    UsmAgent getUsmAgent();
}
